// pages/weekly_content/weekly_content.js
const request = require('../../utils/promise.js');
Page({
  /**
   * 页面的初始数据
   */
  data: {
    isTask: false,
    userId: null,
    taskId: null,    // 计划对应的任务 id
    weeklyId: null,  // 计划 id
    contentId: null,  // 计划内容 id
    canModify: false,
    contentStr: '',
    taskArr: [],
    taskIndex: 0,
    taskName: '',
    startDate: '',
    endDate: '',
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) { 
    
    this.setData({
      weeklyId: options.id,
      contentId: options.contentId? options.contentId: null,
      canModify: options.userId==wx.getStorageSync('userId'),
      userId: options.userId,
      taskId: options.taskId? options.taskId: null,
      isTask: options.isTask==1, 
      startDate: options.startDate,
      endDate: options.endDate
    })
    this.reqWeeklyReportWorkContent();  // 请求获取工作内容
    this.reqMyTasksData(); // 获取用户的所有任务
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 页面被用户分享时执行
   */
  onShareAppMessage() {
    return {
      title: '计划详情'
    }
  },

  /**
   * 分享到朋友圈
   */
  onShareTimeline() {
    return {
      title: '计划详情'
    }
  },

  /**
   * 请求获取工作内容
   */
  reqWeeklyReportWorkContent() {
    if (this.data.contentId) {
      // 只有工作内容 id 存在时才去获取对应的内容信息
      request.GET('/weekly/workContent/detail', {contentId: this.data.contentId}).then(res => {
        // console.log(res)
        if (res.data.resCode==200) {
          this.setData({
            contentStr: res.data.workContent,
          })
        } else {
          wx.showToast({
            title: '获取数据异常',
            icon: 'error',
            duration: 1500
          })
        }
      })
    }
  },

  /**
   * 获取用户的所有任务
   */
  reqMyTasksData() {
    request.GET('/task/myTasks', {userId: this.data.userId, fromPage: 1}).then(res => {
      // console.log(res);
      if (res.data.resCode==200) {
        this.setData({
          taskArr: res.data.taskArr,
        })
      } else {
        wx.showToast({
          title: '获取任务异常',
          icon: 'error',
        })
      }
    })
  },

  /**
   * 内容修改
   */
  bindInputChange(e) {
    this.setData({
      contentStr: e.detail.value
    })
  },

  /**
   * 任务选择修改
   */
  bindTaskPickerChange(e) {

    if (this.data.taskArr.length==0) {
      return;
    }

    const taskName = this.data.taskArr[e.detail.value]['name'];
    const taskId = this.data.taskArr[e.detail.value]['id'];
    this.setData({
      taskId: taskId,
      taskIndex: e.detail.value,
      taskName: taskName
    })
  },

  /**
   * 点击保存工作内容
   */
  clickSaveWorkContent() {

    const contentStr = this.data.contentStr.trim();
    if (contentStr.length==0) {
      wx.showToast({
        title: '内容不能为空',
        icon: 'none',
        duration: 1000
      })
      return;
    }

    // 请求保存
    var param = {
      weeklyId: this.data.weeklyId,
      contentStr: contentStr,
    }
    if (this.data.contentId) {
      param['id'] = this.data.contentId;
    }

    if (this.data.isTask) {
      if (this.data.taskId && this.data.taskId!=-1) {
        param['taskId'] = this.data.taskId;
      } else {
        wx.showToast({
          title: '必须选择一个任务',
          icon: 'none',
        })
        return;
      }
    }

    wx.showToast({
      title: '保存中',
      icon: 'loading',
      duration: 30000,
      mask: true
    })

    request.GET('/weekly/report/content/save', param).then(res => {
      //console.log(res)
      if (res.data.resCode==200) {
        wx.showToast({
          title: '保存成功',
          icon: 'success',
          mask: true,
          duration: 1000
        })

        setTimeout(function() {
          wx.navigateBack({
            delta: 1,
          })
        }, 1000)
      } else if (res.data.resCode==201) {
        wx.showToast({
          title: '该任务计划已存在, 您可以直接修改',
          icon: 'none',
          mask: true
        })
      } else {
        wx.showToast({
          title: '保存异常失败',
          icon: 'error',
          mask: true
        })
      }
    })
  },
  
})